<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.16"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SA-PCB: GridBasedPlacer Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SA-PCB
   </div>
   <div id="projectbrief">Annealing-basedPCBplacementtool</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.16 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="class_grid_based_placer-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">GridBasedPlacer Class Reference</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a44663116c923a78d2c437e4eb7589d89"><td class="memItemLeft" align="right" valign="top"><a id="a44663116c923a78d2c437e4eb7589d89"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>GridBasedPlacer</b> (<a class="el" href="classkicad_pcb_data_base.html">kicadPcbDataBase</a> &amp;db)</td></tr>
<tr class="separator:a44663116c923a78d2c437e4eb7589d89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0e139d990c86db885204c73e801686a7"><td class="memItemLeft" align="right" valign="top"><a id="a0e139d990c86db885204c73e801686a7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>test_hplacer_flow</b> ()</td></tr>
<tr class="separator:a0e139d990c86db885204c73e801686a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab3d8210943757d48f7c0d266e7ad426b"><td class="memItemLeft" align="right" valign="top"><a id="ab3d8210943757d48f7c0d266e7ad426b"></a>
<a class="el" href="classkicad_pcb_data_base.html">kicadPcbDataBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>test_placer_flow</b> ()</td></tr>
<tr class="separator:ab3d8210943757d48f7c0d266e7ad426b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f63dd90c0b946320ece6ed3eb8546bc"><td class="memItemLeft" align="right" valign="top"><a id="a4f63dd90c0b946320ece6ed3eb8546bc"></a>
<a class="el" href="classkicad_pcb_data_base.html">kicadPcbDataBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>getDb</b> ()</td></tr>
<tr class="separator:a4f63dd90c0b946320ece6ed3eb8546bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57ce6cfd7a82e164635417517f78dbed"><td class="memItemLeft" align="right" valign="top"><a id="a57ce6cfd7a82e164635417517f78dbed"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>get_total_cost</b> ()</td></tr>
<tr class="separator:a57ce6cfd7a82e164635417517f78dbed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3ac43d78057e1b08d5a8c07f95f0cb24"><td class="memItemLeft" align="right" valign="top"><a id="a3ac43d78057e1b08d5a8c07f95f0cb24"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>get_wirelength_cost</b> ()</td></tr>
<tr class="separator:a3ac43d78057e1b08d5a8c07f95f0cb24"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a356bda557d61cc1044eb4a9bedaf9f55"><td class="memItemLeft" align="right" valign="top"><a id="a356bda557d61cc1044eb4a9bedaf9f55"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>get_overlap_cost</b> ()</td></tr>
<tr class="separator:a356bda557d61cc1044eb4a9bedaf9f55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4337191fd299c11af33e3edd1342b182"><td class="memItemLeft" align="right" valign="top"><a id="a4337191fd299c11af33e3edd1342b182"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>get_temperature</b> ()</td></tr>
<tr class="separator:a4337191fd299c11af33e3edd1342b182"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae8f664750ebd45f17f3f3824d64aa1f7"><td class="memItemLeft" align="right" valign="top"><a id="ae8f664750ebd45f17f3f3824d64aa1f7"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_overlap_weight</b> (double _cst)</td></tr>
<tr class="separator:ae8f664750ebd45f17f3f3824d64aa1f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f7fc615af1408904a9095e2fa0c13fc"><td class="memItemLeft" align="right" valign="top"><a id="a7f7fc615af1408904a9095e2fa0c13fc"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_wirelength_weight</b> (double _cst)</td></tr>
<tr class="separator:a7f7fc615af1408904a9095e2fa0c13fc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff68c0cb5ac6241fb010d25310a8fa8d"><td class="memItemLeft" align="right" valign="top"><a id="aff68c0cb5ac6241fb010d25310a8fa8d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_two_sided</b> (bool _2sided)</td></tr>
<tr class="separator:aff68c0cb5ac6241fb010d25310a8fa8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa707b06f6895144328ba90ef40479686"><td class="memItemLeft" align="right" valign="top"><a id="aa707b06f6895144328ba90ef40479686"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_initial_move_radius</b> (double _eps)</td></tr>
<tr class="separator:aa707b06f6895144328ba90ef40479686"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a301bc7f012f37734cdd7816fe621083b"><td class="memItemLeft" align="right" valign="top"><a id="a301bc7f012f37734cdd7816fe621083b"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_rtree</b> (bool _rt)</td></tr>
<tr class="separator:a301bc7f012f37734cdd7816fe621083b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab01ce404434796db0764f64aa8c067e0"><td class="memItemLeft" align="right" valign="top"><a id="ab01ce404434796db0764f64aa8c067e0"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_lam</b> (bool _lam)</td></tr>
<tr class="separator:ab01ce404434796db0764f64aa8c067e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65f6d20fb5e8ec24f4684cd6c95cd0e9"><td class="memItemLeft" align="right" valign="top"><a id="a65f6d20fb5e8ec24f4684cd6c95cd0e9"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_lamtemp_update</b> (double _coef)</td></tr>
<tr class="separator:a65f6d20fb5e8ec24f4684cd6c95cd0e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2b1dbe1a650964e8246e2c29374556a"><td class="memItemLeft" align="right" valign="top"><a id="af2b1dbe1a650964e8246e2c29374556a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_num_iterations</b> (int iter)</td></tr>
<tr class="separator:af2b1dbe1a650964e8246e2c29374556a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b8547649f28d55274e7d681424569e4"><td class="memItemLeft" align="right" valign="top"><a id="a4b8547649f28d55274e7d681424569e4"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_iterations_moves</b> (int iter)</td></tr>
<tr class="separator:a4b8547649f28d55274e7d681424569e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6594b4c62e8a1ead573306e1abc80580"><td class="memItemLeft" align="right" valign="top"><a id="a6594b4c62e8a1ead573306e1abc80580"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>set_initial_temperature</b> (double tmp)</td></tr>
<tr class="separator:a6594b4c62e8a1ead573306e1abc80580"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac41b70d10cb504c141af491e6d008fea"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#ac41b70d10cb504c141af491e6d008fea">h_cellDensity</a> ()</td></tr>
<tr class="separator:ac41b70d10cb504c141af491e6d008fea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21239fa283709511c49fc4dad44bd4eb"><td class="memItemLeft" align="right" valign="top"><a id="a21239fa283709511c49fc4dad44bd4eb"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>h_initialize_params</b> (map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a21239fa283709511c49fc4dad44bd4eb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7c5717ebc9a8b3335ed1261e16bff59"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#ae7c5717ebc9a8b3335ed1261e16bff59">h_validate_move</a> (<a class="el" href="class_module.html">Module</a> *node, double rx, double ry)</td></tr>
<tr class="separator:ae7c5717ebc9a8b3335ed1261e16bff59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a31f4a49e6827b180e5fc21e833ccd0f3"><td class="memItemLeft" align="right" valign="top"><a id="a31f4a49e6827b180e5fc21e833ccd0f3"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>h_cost</b> (map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell, int temp_debug=0)</td></tr>
<tr class="separator:a31f4a49e6827b180e5fc21e833ccd0f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a81db947f82c5c2e8605f3f0315018cc6"><td class="memItemLeft" align="right" valign="top"><a id="a81db947f82c5c2e8605f3f0315018cc6"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>h_cost_partial</b> (vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &amp;nodes, map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a81db947f82c5c2e8605f3f0315018cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5d2bd9727ba3c264e49c6e9967186db"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#aa5d2bd9727ba3c264e49c6e9967186db">h_cell_overlap</a> ()</td></tr>
<tr class="separator:aa5d2bd9727ba3c264e49c6e9967186db"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afca1f17ef4b6a070b7c35fcc0d60b4d6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#afca1f17ef4b6a070b7c35fcc0d60b4d6">h_wirelength</a> (map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:afca1f17ef4b6a070b7c35fcc0d60b4d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47a20daab21c665fba6e8989be8b626d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a47a20daab21c665fba6e8989be8b626d">h_cell_overlap_partial</a> (vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &amp;nodes)</td></tr>
<tr class="separator:a47a20daab21c665fba6e8989be8b626d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65ce19bb1688c364d9ccbd289b866c13"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a65ce19bb1688c364d9ccbd289b866c13">h_wirelength_partial</a> (vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &amp;nodes, map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a65ce19bb1688c364d9ccbd289b866c13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4990e973111e94cabfc1b943838ccef3"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a4990e973111e94cabfc1b943838ccef3">h_rudy</a> (map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a4990e973111e94cabfc1b943838ccef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a103c5cdd728660330372236797dc81bb"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a103c5cdd728660330372236797dc81bb">h_annealer</a> (map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell, string initial_pl, int level=0)</td></tr>
<tr class="separator:a103c5cdd728660330372236797dc81bb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a414e6f1966f9aabee8b370fd5cbcd88b"><td class="memItemLeft" align="right" valign="top"><a id="a414e6f1966f9aabee8b370fd5cbcd88b"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>h_initialize_temperature</b> (double &amp;Temperature, map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a414e6f1966f9aabee8b370fd5cbcd88b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ccf428c3ab674d08b8b6cae177bbe05"><td class="memItemLeft" align="right" valign="top"><a id="a9ccf428c3ab674d08b8b6cae177bbe05"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>h_initiate_move</b> (double current_cost, map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;netToCell)</td></tr>
<tr class="separator:a9ccf428c3ab674d08b8b6cae177bbe05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8b8ce61fb5d0eb92ab18aa2c55baa718"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a8b8ce61fb5d0eb92ab18aa2c55baa718">h_random_placement</a> (int xmin, int xmax, int ymin, int ymax, <a class="el" href="class_module.html">Module</a> &amp;n)</td></tr>
<tr class="separator:a8b8ce61fb5d0eb92ab18aa2c55baa718"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2708609c6132b6397a28f3b2d7cdc95f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a2708609c6132b6397a28f3b2d7cdc95f">h_random_initial_placement</a> ()</td></tr>
<tr class="separator:a2708609c6132b6397a28f3b2d7cdc95f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7b55563a2d68a93c97b711ad58018485"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a7b55563a2d68a93c97b711ad58018485">h_check_move</a> (double prevCost, double newCost, double &amp;Temperature)</td></tr>
<tr class="separator:a7b55563a2d68a93c97b711ad58018485"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5afd689f63a3d696e8404229a3b82d9b"><td class="memItemLeft" align="right" valign="top">vector&lt; <a class="el" href="class_module.html">Module</a> * &gt;::iterator&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_grid_based_placer.html#a5afd689f63a3d696e8404229a3b82d9b">h_random_node</a> ()</td></tr>
<tr class="separator:a5afd689f63a3d696e8404229a3b82d9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ad27c688099f63960509af621f97ef827"><td class="memItemLeft" align="right" valign="top"><a id="ad27c688099f63960509af621f97ef827"></a>
<a class="el" href="classkicad_pcb_data_base.html">kicadPcbDataBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>mDb</b></td></tr>
<tr class="separator:ad27c688099f63960509af621f97ef827"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a103c5cdd728660330372236797dc81bb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a103c5cdd728660330372236797dc81bb">&#9670;&nbsp;</a></span>h_annealer()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">float GridBasedPlacer::h_annealer </td>
          <td>(</td>
          <td class="paramtype">map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>netToCell</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">string&#160;</td>
          <td class="paramname"><em>initial_pl</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>level</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_annealer fmain loop for sa algorithm</p>
<p>annealer main loop for sa algorithm </p>

</div>
</div>
<a id="aa5d2bd9727ba3c264e49c6e9967186db"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa5d2bd9727ba3c264e49c6e9967186db">&#9670;&nbsp;</a></span>h_cell_overlap()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_cell_overlap </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_cell_overlap Compute sum squared overlap for all components</p>
<p>cell_overlap Compute sum squared overlap for all components </p>

</div>
</div>
<a id="a47a20daab21c665fba6e8989be8b626d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a47a20daab21c665fba6e8989be8b626d">&#9670;&nbsp;</a></span>h_cell_overlap_partial()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_cell_overlap_partial </td>
          <td>(</td>
          <td class="paramtype">vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>nodes</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_cell_overlap_partial Compute sum squared overlap for select components</p>
<p>cell_overlap_partial Compute sum squared overlap for select components </p>

</div>
</div>
<a id="ac41b70d10cb504c141af491e6d008fea"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac41b70d10cb504c141af491e6d008fea">&#9670;&nbsp;</a></span>h_cellDensity()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_cellDensity </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_rudy Computes a routability score</p>
<p>rudy Computes a routability score </p>

</div>
</div>
<a id="a7b55563a2d68a93c97b711ad58018485"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b55563a2d68a93c97b711ad58018485">&#9670;&nbsp;</a></span>h_check_move()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool GridBasedPlacer::h_check_move </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>prevCost</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>newCost</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double &amp;&#160;</td>
          <td class="paramname"><em>Temperature</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_check_move either accept or reject the move based on current &amp; previous temperature &amp; cost</p>
<p>check_move either accept or reject the move based on current &amp; previous temperature &amp; cost </p>

</div>
</div>
<a id="a2708609c6132b6397a28f3b2d7cdc95f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2708609c6132b6397a28f3b2d7cdc95f">&#9670;&nbsp;</a></span>h_random_initial_placement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GridBasedPlacer::h_random_initial_placement </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_initial_placement Randomly place and orient all movable components in the board area</p>
<p>initial_placement Randomly place and orient all movable components in the board area </p>

</div>
</div>
<a id="a5afd689f63a3d696e8404229a3b82d9b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5afd689f63a3d696e8404229a3b82d9b">&#9670;&nbsp;</a></span>h_random_node()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">vector&lt; <a class="el" href="class_module.html">Module</a> * &gt;::iterator GridBasedPlacer::h_random_node </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_random_node Select random node from set of nodes</p>
<p>random_node Select random node from set of nodes </p>

</div>
</div>
<a id="a8b8ce61fb5d0eb92ab18aa2c55baa718"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8b8ce61fb5d0eb92ab18aa2c55baa718">&#9670;&nbsp;</a></span>h_random_placement()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GridBasedPlacer::h_random_placement </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xmin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>xmax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ymin</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ymax</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_module.html">Module</a> &amp;&#160;</td>
          <td class="paramname"><em>n</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>hannealer main loop for hierarchical sa algorithm h_random_placement Randomly place and orient a single component within a bounded region</p>
<p>random_placement Randomly place and orient a single component within a bounded region </p>

</div>
</div>
<a id="a4990e973111e94cabfc1b943838ccef3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4990e973111e94cabfc1b943838ccef3">&#9670;&nbsp;</a></span>h_rudy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_rudy </td>
          <td>(</td>
          <td class="paramtype">map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>netToCell</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_rudy Computes a routability score</p>
<p>rudy Computes a routability score </p>

</div>
</div>
<a id="ae7c5717ebc9a8b3335ed1261e16bff59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7c5717ebc9a8b3335ed1261e16bff59">&#9670;&nbsp;</a></span>h_validate_move()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GridBasedPlacer::h_validate_move </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_module.html">Module</a> *&#160;</td>
          <td class="paramname"><em>node</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>rx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>ry</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_validate_move validates a shift, project within board boundary</p>
<p>validate_move validates a shift, project within board boundary </p>

</div>
</div>
<a id="afca1f17ef4b6a070b7c35fcc0d60b4d6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afca1f17ef4b6a070b7c35fcc0d60b4d6">&#9670;&nbsp;</a></span>h_wirelength()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_wirelength </td>
          <td>(</td>
          <td class="paramtype">map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>netToCell</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_wirelength Computes HPWL for all nets</p>
<p>wirelength Computes HPWL for all nets </p>

</div>
</div>
<a id="a65ce19bb1688c364d9ccbd289b866c13"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65ce19bb1688c364d9ccbd289b866c13">&#9670;&nbsp;</a></span>h_wirelength_partial()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">double GridBasedPlacer::h_wirelength_partial </td>
          <td>(</td>
          <td class="paramtype">vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &amp;&#160;</td>
          <td class="paramname"><em>nodes</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">map&lt; int, vector&lt; <a class="el" href="class_module.html">Module</a> * &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>netToCell</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>h_wireLength_partial Compute HPWL for select nets</p>
<p>wireLength_partial Compute HPWL for select nets </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>src/<a class="el" href="_grid_based_placer_8hpp_source.html">GridBasedPlacer.hpp</a></li>
<li>src/GridBasedPlacer.cpp</li>
<li>src/HPlacerUtils.cpp</li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.16
</small></address>
</body>
</html>
